package com.mkj.component;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

/**
 * @Author Arrebol
 * @Date 2024/8/4 11:10
 * @Project graphical programming
 * @Description：
 * Dialog对话框
 * 在Java的AWT库中，对话框分为模式对话框和非模式对话框。
 * 模式对话框要求用户在继续操作所有者窗口之前完成并关闭这类对话框。
 * 它们最适合于需要完成的关键任务或不频繁的一次性任务。
 * 当一个模式对话框被打开后，它总是位于其父窗口之上，并且在关闭该模式对话框之前，父窗口无法获得焦点。
 * 与之相对的，非模式对话框允许用户根据需要在对话框和所有者窗口之间切换。
 * 这类对话框通常更适用于频繁、重复、正在进行的任务。
 * 与模式对话框不同，非模式对话框并不阻塞用户与其父窗口的交互。
 */
public class DialogDemo1 {
    public static void main(String[] args) {
        Frame frame=new Frame("这里测试Dialog对话框");
        //创建两个对话框Dialog对象————模式对话框与非模式对话框
        Dialog dialog1=new Dialog(frame,"模式对话框",true);
        Dialog dialog2=new Dialog(frame,"非模式对话框",false);
        //通过setBounds方法设置Dialog的位置与大小
        dialog1.setBounds(20,30,300,200);
        dialog2.setBounds(20,30,300,200);
        //创建两个按钮
        Button button1=new Button("打开模式对话框");
        Button button2=new Button("打开非模式对话框");
        //需要给这两个按钮添加点击后的行为————点击事件
        button1.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                dialog1.setVisible(true);
            }
        });
        button2.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                dialog2.setVisible(true);
            }
        });
        //将按钮添加到Frame中
        frame.add(button1,BorderLayout.NORTH);
        frame.add(button2);

        frame.pack();
        frame.setVisible(true);
    }
}
